﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceModel;
using Olitee.WorkScheduler.Interfaces;
using Olitee.WorkScheduler.Model;

namespace Olitee.WorkScheduler.Service
{
    /// <summary>
    /// This service interface can be used as a contract definition for WCF.
    /// </summary>
    [ServiceContract]
    public interface ISchedulerService
    {
        [OperationContract]
        void AddWorkItem(WorkItemBase workItem);

        [OperationContract]
        void StartScheduler();

        [OperationContract]
        void StopScheduler();

        [OperationContract]
        List<WorkScheduler.Model.WorkItemBase> GetAllJobs();

        [OperationContract]
        void SetMaximumConcurrentWorkItems(int concurrency);
    }
}
